package utils;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * RabbitMQUtils
 *
 * @author 丛有志
 * @date 2020/11/8 18:10
 * <p>
 * 版本        修改时间        作者        修改内容
 * V1.0        2020/11/8     丛有志        初始版本
 */

public class RabbitMQUtils {

    /**
     * 定义提供连接对象的方法
     *
     * @return 连接对象
     */
    public static Connection getConnection() {
        try {
            ConnectionFactory connectionFactory = new ConnectionFactory();
            // 设置连接rabbitmq主机
            connectionFactory.setHost("39.105.42.229");
            // 设置端口
            connectionFactory.setPort(5672);
            // 设置连接哪个虚拟主机
            connectionFactory.setVirtualHost("/ems");
            // 设置访问虚拟主机的用户名
            connectionFactory.setUsername("ems");
            // 设置密码
            connectionFactory.setPassword("123");
            // 获取连接对象
            return connectionFactory.newConnection();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 关闭通道和关闭连接工具方法
     *
     * @param channel 通道
     * @param conn    连接
     */
    public static void closeConnectionAndChanel(Channel channel, Connection conn) {

        try {
            if (null != channel) {
                channel.close();
            }
            if (null != conn) {
                conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
